package $15_object;

public class Test {

	public static void main(String[] args)
	{
		{
			//toString方法
			Student s1 = new Student("张三", 23);
			System.out.println(s1.toString());  // 未重写结果：$15_object.Student@4e50df2e
			//直接输出一个类的对象的时候，会自动调用这个类的toString方法
			System.out.println(s1);  // 未重写结果：$15_object.Student@4e50df2e
		}
	System.out.println("------------------------------------------------");
		{
			//equals方法
			Student s1 = new Student("张三", 23);
			Student s2 = new Student("张三", 23);
			System.out.println(s1.equals(s2));  // 未重写结果：false ，因为默认比较内存地址
			//重写后，比较的是属性值
		}
	System.out.println("---------------------------------------------------");
		{
			Student s1 = new Student("张三", 23);
			Student s2 = new Student("张三", 23);
			System.out.println(s1.hashCode());  // 未重写结果：1313922862   输出的是哈希码值
			System.out.println(s2.hashCode());  // 未重写结果：495053715    默认根据内存地址计算而来
			//重写后，两份哈希码值是一样的，是根据属性值计算而来
		}
	}

}
